﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using SGRapidForm.Common;
using SGRapidForm.Foundation.Entity;

namespace SGRapidForm.Foundation.Service.Interface
{
    [ServiceContract(Namespace = "http://www.solutiongear.net/SGRapidForm/")]
    public interface IFoundationDetailServic
    {
        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool AddFoundation(FoundationEntity foundationEntity);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool DeleteFoundation(string keyid);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool BulkDeleteFoundation(string keyids);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool UpdateFoundation(FoundationEntity foundationEntity);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        FoundationEntity GetFoundationByKeyid(string keyid);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<FoundationEntity> GetByFoundationClassKeyid(string keyid);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<FoundationEntity> GetFoundationList();

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<FoundationEntity> PagingGetFoundation(Int32 startRecord, Int32 maxRecords, String sortColumns, String filterConditions);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        int PagingGetFoundationCount(String filterConditions);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<FoundationEntity> DoSelectByFoundation(string fieldconditions);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<FoundationEntity> GetAll();

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool DeleteByFouKeyid(string keyid);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<FoundationEntity> GetFoundationByClassCode(string classCode);
    }
}
